﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using Atlandiz.Data;
using FastReport;
using FastReport.Data;
using FastReport.Preview;
using FastReport.Utils;
using System.IO;

namespace Atlandiz.EnvanterVeZimmetYonetimi
{
    public partial class FormYazilim : DevExpress.XtraEditors.XtraForm
    {
        //StiReport Report = new StiReport();
        public Report FReport=new Report();

        public int KayID;
        public FormYazilim()
        {
            InitializeComponent();
        }

        public void KayitGetir()
        {
            _txtUreticiFirmaString.Text = Army.SQL().GetDataCell("Select yuFirmaUnvan from YazilimUretici where yuID=(Select yuID from Yazilim where yID=" + KayID + ")");
            _txtUreticiFirmaInt.Text = Army.SQL().GetDataCell("Select yuID from YazilimUretici where yuID=(Select yuID from Yazilim where yID=" + KayID + ")");
            _txtYazilimMarkaString.Text = Army.SQL().GetDataCell("Select yiAdi from YazilimIsim where yiID=(Select yiID from Yazilim where yID=" + KayID + ")");
            _txtYazilimAdiInt.Text = Army.SQL().GetDataCell("Select yiID from YazilimIsim where yiID=(Select yiID from Yazilim where yID=" + KayID + ")");
            _txtSurumString.Text = Army.SQL().GetDataCell("Select ySurum from YazilimSurum where ysID=(Select ysID from Yazilim where yID=" + KayID + ")");
            _txtSurumInt.Text = Army.SQL().GetDataCell("Select ysID from YazilimSurum where ysID=(Select ysID from Yazilim where yID=" + KayID + ")");
            _txtLisansNoString.Text = Army.SQL().GetDataCell("Select LisansNo from Yazilim where yID=" + KayID);
            _dtEnvanterGirisTarihi.DateTime = DateTime.Parse(Army.SQL().GetDataCell("Select EnvanterGirisTarihi from Yazilim where yID=" + KayID));
            _dtLisansBaslangic.DateTime = DateTime.Parse(Army.SQL().GetDataCell("Select LisBasTarih from Yazilim where yID=" + KayID));
            _dtLisansBitis.DateTime = DateTime.Parse(Army.SQL().GetDataCell("Select LisBitTarih from Yazilim where yID=" + KayID));
            _txtTedarikciFirmaString.Text = Army.SQL().GetDataCell("Select tFirmaUnvan from Tedarikci where tID=(Select tID from Yazilim where yID=" + KayID + ")");
            _txtTedarikciFirmaInt.Text = Army.SQL().GetDataCell("Select tID from Yazilim where yID=" + KayID);

            _txtDepoString.Text = Army.SQL().GetDataCell("Select DepoAdi from Depolar where id=(Select DepoId from Yazilim where yID=" + KayID + ")");
            _txtDepoInt.Text = Army.SQL().GetDataCell("Select DepoId from Yazilim where yID=" + KayID);

            _txtAciklamaString.Text = Army.SQL().GetDataCell("Select Aciklama from Yazilim where yID=" + KayID);
            _cbLisansTuru.SelectedItem = Army.SQL().GetDataCell("Select LisTuru from Yazilim where yID=" + KayID);
            _txtMaliyetFiyatiMoney.Text = Army.SQL().GetDataCell("Select Maliyet from Yazilim where yID=" + KayID);
            _txtZimmetDegeriMoney.Text = Army.SQL().GetDataCell("Select ZimmetDegeri from Yazilim where yID=" + KayID);
            _txtMaliyetDoviz.Text = Army.SQL().GetDataCell("Select MaliyetDoviz from Yazilim where yID=" + KayID);
            _txtZimmetDegeriDoviz.Text = Army.SQL().GetDataCell("Select ZimmetDegeriDoviz from Yazilim where yID=" + KayID);

            string HurdamiSorgu = "Select isHurda from Yazilim where yID=" + KayID;

            isHurdaForYazilim.Checked = Convert.ToBoolean(Army.SQL().GetDataCell(HurdamiSorgu));
        }

        private void Yazilim_Load(object sender, EventArgs e)
        {
            if (!YardimciSiniflar.IsTableExist("ParaBirimleri"))
            {

                try
                {
                    String Sorgu = "CREATE TABLE [dbo].[ParaBirimleri](\n" +
                        "	[id] [int] IDENTITY(1,1) NOT NULL,\n" +
                        "	[ParaBirimi] [nvarchar](100) NULL,\n" +
                        "	[Sembol] [nvarchar](10) NULL,\n" +
                        "	[Kur] [money] NULL,\n" +
                        "	[isDefault] [bit] NULL,\n" +
                        " CONSTRAINT [PK_ParaBirimleri] PRIMARY KEY CLUSTERED \n" +
                        "(\n" + "	[id] ASC\n" +
                        ")WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]\n" +
                        ") ON [PRIMARY]\n";

                    Army.SQL().cmd(Sorgu);
                    Army.SQL().cmd("INSERT INTO ParaBirimleri(ParaBirimi,Sembol,Kur,isDefault) VALUES('Türk Lirası','TL',1,1)");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Hata Mesajı:\n" + ex.Message.ToString(), "Hata Oluştu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Close();
                }
            }            

            formuTemizle();
            if (KayID != 0)
            {
                KayitGetir();
            }
            _txtUreticiFirmaString.Focus();
        }

        public void formuTemizle()
        {
            _txtUreticiFirmaString.Text = "";
            _txtUreticiFirmaInt.Text = "";
            _txtYazilimMarkaString.Text = "";
            _txtYazilimAdiInt.Text = "";
            _txtSurumString.Text = "";
            _txtSurumInt.Text = "";
            _txtLisansNoString.Text = "";
            _dtLisansBaslangic.Text = "";
            _dtLisansBitis.Text = "";
            _txtDepoString.Text = "";
            _txtDepoInt.Text = "";
            _dtEnvanterGirisTarihi.Text = "";
            _cbLisansTuru.Text = "";
            _txtAciklamaString.Text = "";
            _txtTedarikciFirmaString.Text = "";
            _txtTedarikciFirmaInt.Text = "";
            _txtMaliyetFiyatiMoney.Text = "";
            _txtZimmetDegeriMoney.Text = "";
            _txtUreticiFirmaString.Focus();
            isHurdaForYazilim.Checked = false;
            
            ParaBirimleriListeGuncelle();
        }

        public void ParaBirimleriListeGuncelle() {

            DataTable dt = Army.SQL().GetDataTable("Select * from ParaBirimleri");
            string DefaultParaBirimi = "";
            
            if (dt.Rows.Count > 0) {
                foreach (DataRow x in dt.Rows) {
                    if (bool.Parse(x["isDefault"].ToString())) DefaultParaBirimi = x["Sembol"].ToString();
                    _txtMaliyetDoviz.Properties.Items.Add(x["Sembol"].ToString());
                    _txtZimmetDegeriDoviz.Properties.Items.Add(x["Sembol"].ToString());
                }
            }

            _txtMaliyetDoviz.Text = DefaultParaBirimi;
            _txtZimmetDegeriDoviz.Text = DefaultParaBirimi;
        }

        private void _btnSecUretici_Click(object sender, EventArgs e)
        {
            ListeYazilimUretici yul = new ListeYazilimUretici();
            yul.ForSelection = true;
            yul.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtUreticiFirmaInt.Text = Army.SecilenID.ToString();
                _txtUreticiFirmaString.Text = Army.SQL().GetDataCell("Select yuFirmaUnvan from YazilimUretici where yuID=" + _txtUreticiFirmaInt.Text);
            }
        }

        private void _btnSecSurum_Click(object sender, EventArgs e)
        {
            ListeYazilimSurum ysl = new ListeYazilimSurum();
            ysl.ForSelection = true;
            ysl.Filtre = _txtYazilimMarkaString.Text.ToString();
            ysl.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtSurumInt.Text = Army.SecilenID.ToString();
                _txtSurumString.Text = Army.SQL().GetDataCell("Select ySurum from YazilimSurum where ysID=" + _txtSurumInt.Text);
            }
        }

        private void _btnSecYazilim_Click(object sender, EventArgs e)
        {
            ListeYazilimMarka yil = new ListeYazilimMarka();
            yil.ForSelection = true;
            yil.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtYazilimAdiInt.Text = Army.SecilenID.ToString();
                _txtYazilimMarkaString.Text = Army.SQL().GetDataCell("Select yiAdi from YazilimIsim where yiID=" + _txtYazilimAdiInt.Text);
            }
        }

        private void _btnSecTedarikci_Click(object sender, EventArgs e)
        {
            ListeTedarikci tl = new ListeTedarikci();
            tl.ForSelection = true;
            tl.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtTedarikciFirmaInt.Text = Army.SecilenID.ToString();
                _txtTedarikciFirmaString.Text = Army.SQL().GetDataCell("Select tFirmaUnvan from Tedarikci where tID=" + _txtTedarikciFirmaInt.Text);
            }
        }

        private void _btnKapat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void _btnFormuTemizle_Click(object sender, EventArgs e)
        {
            formuTemizle();
        }

        public void CMDKaydet() {
            if (_txtMaliyetFiyatiMoney.Text.ToString().Length < 1) _txtMaliyetFiyatiMoney.Text = "0";
            if (_txtZimmetDegeriMoney.Text.ToString().Length < 1) _txtZimmetDegeriMoney.Text = "0";
            if (_dtEnvanterGirisTarihi.Text.Length < 1) _dtEnvanterGirisTarihi.DateTime = DateTime.Today;
            if (_dtLisansBaslangic.Text.Length < 1) _dtLisansBaslangic.DateTime = DateTime.Today;
            if (_dtLisansBitis.Text.Length < 1) _dtLisansBitis.DateTime = DateTime.Today;

            if (_txtUreticiFirmaString.Text == "")
            {
                MessageBox.Show("Yazılım Üreticisi Seçmelisiniz.");
                return;
            }

            if (_txtYazilimMarkaString.Text == "")
            {
                MessageBox.Show("Yazılım Markası Seçmelisiniz.");
                return;
            }

            if (_txtSurumString.Text == "")
            {
                MessageBox.Show("Yazılım Sürümü Seçmelisiniz.");
                return;
            }

            if (_txtDepoString.Text == "")
            {
                MessageBox.Show("Depo Seçmelisiniz.");
                return;
            }

            if (_txtTedarikciFirmaString.Text == "")
            {
                MessageBox.Show("Tedarikçi Seçmelisiniz.");
                return;
            }

            if (_cbLisansTuru.SelectedIndex < 0) {
                MessageBox.Show("Lisans Türü Seçmeliniz.");
                _cbLisansTuru.Focus();
                return;
            }

            if (_txtLisansNoString.Text == "")
            {
                MessageBox.Show("Lisans/Seri No Girmelisiniz.");
                _txtLisansNoString.Focus();
                return;
            }

            switch (KayID)
            {
                case 0:
                    {
                        string VarmiSorgu = "";
                        if (_cbLisansTuru.Text != "VLK/OPEN (Çok Cihaz İçin)")
                        {
                            VarmiSorgu = "SELECT COUNT(*) FROM Yazilim y WHERE y.isDeleted=0 AND y.LisansNo='" + _txtLisansNoString.Text.ToString() + "'";
                        }
                        else
                        {
                            VarmiSorgu = "SELECT COUNT(*) FROM Yazilim y WHERE y.isDeleted=0 AND (y.yuID<>" + int.Parse(_txtUreticiFirmaInt.Text.ToString()) + " AND y.LisansNo='" + _txtLisansNoString.Text.ToString() + "')";
                        }

                        int VarmiBak = int.Parse(Army.SQL().GetDataCell(VarmiSorgu));
                        if (VarmiBak > 0)
                        {
                            MessageBox.Show("Girdiğiniz LisansNo daha önce zaten eklenmiş. Lütfen LisansNo'yu doğru giriniz.");
                            return;
                        }
                        else
                        {
                            string Sorgu = "Insert Into Yazilim(\n" +
                            "yuID,\n" +
                            "yiID,\n" +
                            "ysID,\n" +
                            "LisansNo,\n" +
                            "LisBasTarih,\n" +
                            "LisBitTarih,\n" +
                            "LisTuru,\n" +
                            "tID,\n" +
                            "Aciklama,\n" +
                            "Maliyet,\n" +
                            "MaliyetDoviz,\n" +
                            "ZimmetDegeri,\n" +
                            "ZimmetDegeriDoviz,\n" +
                            "EnvanterGirisTarihi,\n" +
                            "DepoId\n" +
                               ")\n" +
                               "Values(\n" +
                              _txtUreticiFirmaInt.Text + ",\n" +
                              _txtYazilimAdiInt.Text + ",\n" +
                              _txtSurumInt.Text + ",\n" +
                              "'" + _txtLisansNoString.Text.ToString().Replace("'", "''") + "',\n" +
                              "Convert(datetime,'" + _dtLisansBaslangic.DateTime.ToString() + "',104),\n" +
                              "Convert(datetime,'" + _dtLisansBitis.DateTime.ToString() + "',104),\n" +
                              "'" + _cbLisansTuru.Text.Trim() + "',\n" +
                              _txtTedarikciFirmaInt.Text + ",\n" +
                              "'" + _txtAciklamaString.Text.ToString().Replace("'", "''") + "',\n" +
                              _txtMaliyetFiyatiMoney.Text.ToString().Replace(",", ".") + ",\n" +
                              "'" + _txtMaliyetDoviz.Text.ToString().Replace(",", ".") + "',\n" +
                              _txtZimmetDegeriMoney.Text.ToString().Replace(",", ".") + ",\n" +
                              "'" + _txtZimmetDegeriDoviz.Text.ToString().Replace(",", ".") + "',\n" +
                              "Convert(datetime,'" + _dtEnvanterGirisTarihi.DateTime.ToString() + "',104),\n" +
                              _txtDepoInt.Text.ToString() + "\n" +
                              ")";

                            Army.SQL().cmd(Sorgu);
                            formuTemizle();
                        }
                    };
                    break;

                default:
                    {
                        string VarmiSorgu = "";
                        if (_cbLisansTuru.Text != "VLK/OPEN (Çok Cihaz İçin)")
                        {
                            VarmiSorgu = "SELECT COUNT(*) FROM Yazilim y WHERE y.isDeleted=0 AND y.yID<>" + KayID + " AND y.LisansNo='" + _txtLisansNoString.Text.ToString() + "'";
                        }
                        else
                        {
                            VarmiSorgu = "SELECT COUNT(*) FROM Yazilim y WHERE y.isDeleted=0 AND y.yID<>" + KayID + " AND (y.yuID<>" + int.Parse(_txtUreticiFirmaInt.Text.ToString()) + " AND y.LisansNo='" + _txtLisansNoString.Text.ToString() + "')";
                        }

                        int VarmiBak = int.Parse(Army.SQL().GetDataCell(VarmiSorgu));

                        if (VarmiBak > 0)
                        {
                            MessageBox.Show("Girdiğiniz LisansNo daha önce zaten eklenmiş. Lütfen LisansNo'yu doğru giriniz.");
                            return;
                        }
                        else
                        {
                            if (isHurdaForYazilim.Checked)
                            {

                                //KONTROL 1, Tutanak var mı?

                                if (Convert.ToInt32(Army.SQL().GetDataCell("Select COUNT(*)Varmi from Nesneler where Urun_ID=" + KayID + " AND UrunTipi=2 and isHurdaTasfiyeTutanak=1")) < 1)
                                {
                                    MessageBox.Show("Ürünün Hurda/Tasfiye Tutanağı eklenmemiş. Kayıt işlemi iptal edildi!");
                                    return;
                                }

                                //KONTROL 2, Zimmet Dışı mı?
                                string Sorgu = "SELECT \n" +
                                        "(CASE WHEN sum(ZimmetHKutuk.EvrakCinsi) IS NULL THEN 0 ELSE sum(ZimmetHKutuk.EvrakCinsi) END) [VARMI]\n" +
                                        "FROM ZimmetHKutuk\n" +
                                        "LEFT JOIN ZimmetHDetay ON ZimmetHKutuk.zID = ZimmetHDetay.zID\n" +
                                        "WHERE\n" +
                                        "ZimmetHDetay.UrunTipi=2 AND\n" +
                                        "ZimmetHDetay.UrunID=" + KayID + " \n" +
                                        "AND ZimmetHKutuk.isDeleted=0";

                                int UrunZimmetDurumu = int.Parse(Army.SQL().GetDataCell(Sorgu));
                                if (UrunZimmetDurumu > 0)
                                {
                                    MessageBox.Show("Ürün halihazırda başka bir zimmet altında.\nZimmetli olan bir ürün zimmet çıkış işlemi yapılmadan Hurda/Tasfiye durumuna sokulamaz!\n\n", "Hatalı Hurda/Tasfiye İşlemi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                    return;
                                }
                            }

                            Army.SQL().cmd("Update Yazilim Set yuID='" + _txtUreticiFirmaInt.Text + "', yiID='" + _txtYazilimAdiInt.Text + "', ysID='" + _txtSurumInt.Text + "', LisansNo='" + _txtLisansNoString.Text.ToString().Replace("'", "''") + "', LisBasTarih=Convert(datetime,'" + _dtLisansBaslangic.DateTime.ToString() + "',104),LisBitTarih=Convert(datetime,'" + _dtLisansBitis.DateTime.ToString() + "',104), LisTuru='" + _cbLisansTuru.Text.Trim() + "',tID='" + _txtTedarikciFirmaInt.Text + "',Aciklama='" + _txtAciklamaString.Text.ToString().Replace("'", "''") + "',Maliyet=" + _txtMaliyetFiyatiMoney.Text.ToString().Replace(",", ".") + ",MaliyetDoviz='" + _txtMaliyetDoviz.Text.ToString().Replace(",", ".") + "',ZimmetDegeri=" + _txtZimmetDegeriMoney.Text.ToString().Replace(",", ".") + ",ZimmetDegeriDoviz='" + _txtZimmetDegeriDoviz.Text.ToString().Replace(",", ".") + "',EnvanterGirisTarihi=Convert(datetime,'" + _dtEnvanterGirisTarihi.DateTime.ToString() + "',104),DepoId=" + _txtDepoInt.Text.ToString() + ",isHurda=" + Convert.ToInt32(isHurdaForYazilim.Checked) + " where yID=" + KayID);
                            MessageBox.Show("Kayıt {" + KayID + "} Güncellendi.");
                            this.Close();
                        }
                    };
                    break;
            }        
        }
        private void _btnKaydet_Click(object sender, EventArgs e)
        {
            CMDKaydet();
        }

        private void _btnYazilimlarListesi_Click(object sender, EventArgs e)
        {
            ListeYazilim yl = new ListeYazilim();
            yl.ShowDialog();
        }

        private void _btnSecDepo_Click(object sender, EventArgs e)
        {
            ListeDepolar deposec = new ListeDepolar();
            deposec.ForSelection = true;
            deposec.ShowDialog();

            if (Army.EventConfirm == true)
            {
                _txtDepoInt.Text = Army.SecilenID.ToString();
                _txtDepoString.Text = Army.SQL().GetDataCell("Select DepoAdi from Depolar where id=" + _txtDepoInt.Text);
            }
        }

        private void _btnYazdir_Click(object sender, EventArgs e)
        {
            DataTable forReport = new DataTable();
            switch (KayID)
            {
                case 0:
                    MessageBox.Show("Etiket Yazdırmak için önce verinin kaydedilmesi gerekir.", "Yeni Kayıt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                default:
                    if (Army.ReportForYazilim.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForYazilim))
                    {
                        String Sorgu = "SELECT\n" +
                        "YazilimUretici.yuFirmaUnvan [Yazılım Firma],\n" +
                        "YazilimIsim.yiAdi [Marka],\n" +
                        "YazilimSurum.ySurum [Sürüm],\n" +
                        "Yazilim.LisansNo [Lisans Numarası],\n" +
                        "Yazilim.EnvanterGirisTarihi [Envanter Giriş Tarihi],\n" +
                        "Yazilim.LisBasTarih [Lisans Başlangıç Tarihi],\n" +
                        "Yazilim.LisBitTarih [Lisans Bitiş Tarihi],\n" +
                        "Yazilim.LisTuru [Lisans Türü],\n" +
                        "Depolar.DepoAdi [Depo Adı],\n" +
                        "Yazilim.Maliyet [Maliyet],\n" +
                        "Yazilim.ZimmetDegeri [Zimmet Değeri],\n" +
                        "Yazilim.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "Yazilim.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "FROM Yazilim\n" +
                        "LEFT JOIN Depolar ON Yazilim.DepoId = Depolar.id\n" +
                        "LEFT JOIN YazilimSurum ON Yazilim.ysID = YazilimSurum.ysID\n" +
                        "LEFT JOIN YazilimUretici ON Yazilim.yuID = YazilimUretici.yuID\n" +
                        "LEFT JOIN YazilimIsim ON Yazilim.yiID = YazilimIsim.yiID\n" +
                        "WHERE (Yazilim.isDeleted = 0) AND (Yazilim.yID = " + KayID + ")\n";

                        forReport = Army.SQL().GetDataTable(Sorgu);
                          forReport.TableName = "Etiket";
                          FReport.RegisterData(forReport, "Etiket");
                          FReport.GetDataSource("Etiket").Enabled = true;
                          FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForYazilim);
                          FReport.Print();
                      }
                      else
                      {
                          MessageBox.Show("Bu işlem için uygun rapor dosyası bulunamadı.\nAyarlar'dan tanımlamalısınız.","Rapor Dosyası Bulunamadı!",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
                      }
                    break;
            };
        }

        private void _btnDizayn_Click(object sender, EventArgs e)
        {
            DataTable forReport = new DataTable();
            switch (KayID)
            {
                case 0:
                    MessageBox.Show("Etiket Yazdırmak için önce verinin kaydedilmesi gerekir.", "Yeni Kayıt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                default:
                    String Sorgu = "SELECT\n" +
                    "YazilimUretici.yuFirmaUnvan [Yazılım Firma],\n" +
                    "YazilimIsim.yiAdi [Marka],\n" +
                    "YazilimSurum.ySurum [Sürüm],\n" +
                    "Yazilim.LisansNo [Lisans Numarası],\n" +
                    "Yazilim.EnvanterGirisTarihi [Envanter Giriş Tarihi],\n" +
                    "Yazilim.LisBasTarih [Lisans Başlangıç Tarihi],\n" +
                    "Yazilim.LisBitTarih [Lisans Bitiş Tarihi],\n" +
                    "Yazilim.LisTuru [Lisans Türü],\n" +
                    "Depolar.DepoAdi [Depo Adı],\n" +
                    "Yazilim.Maliyet [Maliyet],\n" +
                    "Yazilim.ZimmetDegeri [Zimmet Değeri],\n" +
                    "Yazilim.MaliyetDoviz [Maliyet Para Birimi],\n" +
                    "Yazilim.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                    "FROM Yazilim\n" +
                    "LEFT JOIN Depolar ON Yazilim.DepoId = Depolar.id\n" +
                    "LEFT JOIN YazilimSurum ON Yazilim.ysID = YazilimSurum.ysID\n" +
                    "LEFT JOIN YazilimUretici ON Yazilim.yuID = YazilimUretici.yuID\n" +
                    "LEFT JOIN YazilimIsim ON Yazilim.yiID = YazilimIsim.yiID\n" +
                    "WHERE (Yazilim.isDeleted = 0) AND (Yazilim.yID = " + KayID + ")\n";

                    forReport = Army.SQL().GetDataTable(Sorgu);
                    forReport.TableName = "Etiket";
                    FReport.RegisterData(forReport, "Etiket");
                    FReport.GetDataSource("Etiket").Enabled = true;

                    if (Army.ReportForYazilim.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForYazilim))
                    {
                        FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForYazilim);
                    }
                    FReport.Design();
                    break;
            };
        }

        private void _btnOnizleme_Click(object sender, EventArgs e)
        {
            DataTable forReport = new DataTable();
            switch (KayID)
            {
                case 0:
                    MessageBox.Show("Etiket Yazdırmak için önce verinin kaydedilmesi gerekir.", "Yeni Kayıt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    break;
                default:
                    if (Army.ReportForYazilim.Length > 0 & File.Exists(Army.ProgramBaseEnvironmentPath + Army.ReportForYazilim))
                    {
                        String Sorgu = "SELECT\n" +
                        "YazilimUretici.yuFirmaUnvan [Yazılım Firma],\n" +
                        "YazilimIsim.yiAdi [Marka],\n" +
                        "YazilimSurum.ySurum [Sürüm],\n" +
                        "Yazilim.LisansNo [Lisans Numarası],\n" +
                        "Yazilim.EnvanterGirisTarihi [Envanter Giriş Tarihi],\n" +
                        "Yazilim.LisBasTarih [Lisans Başlangıç Tarihi],\n" +
                        "Yazilim.LisBitTarih [Lisans Bitiş Tarihi],\n" +
                        "Yazilim.LisTuru [Lisans Türü],\n" +
                        "Depolar.DepoAdi [Depo Adı],\n" +
                        "Yazilim.Maliyet [Maliyet],\n" +
                        "Yazilim.ZimmetDegeri [Zimmet Değeri],\n" +
                        "Yazilim.MaliyetDoviz [Maliyet Para Birimi],\n" +
                        "Yazilim.ZimmetDegeriDoviz [Zimmet Değeri Para Birimi]\n" +
                        "FROM Yazilim\n" +
                        "LEFT JOIN Depolar ON Yazilim.DepoId = Depolar.id\n" +
                        "LEFT JOIN YazilimSurum ON Yazilim.ysID = YazilimSurum.ysID\n" +
                        "LEFT JOIN YazilimUretici ON Yazilim.yuID = YazilimUretici.yuID\n" +
                        "LEFT JOIN YazilimIsim ON Yazilim.yiID = YazilimIsim.yiID\n" +
                        "WHERE (Yazilim.isDeleted = 0) AND (Yazilim.yID = " + KayID + ")\n";

                        forReport = Army.SQL().GetDataTable(Sorgu);
                          forReport.TableName = "Etiket";
                          FReport.RegisterData(forReport, "Etiket");
                          FReport.GetDataSource("Etiket").Enabled = true;
                          FReport.Load(Army.ProgramBaseEnvironmentPath + Army.ReportForYazilim);
                          FReport.Show();
                      }
                      else
                      {
                          MessageBox.Show("Bu işlem için uygun rapor dosyası bulunamadı.\nAyarlar'dan tanımlamalısınız.","Rapor Dosyası Bulunamadı!",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
                      }
                    break;
            };
        }

        private void simpleButton1_Click(object sender, EventArgs e)
        {
            ListeNesneler NesnelerListe = new ListeNesneler();
            NesnelerListe.Urun_Id = KayID;
            NesnelerListe.UrunTipi = 2;
            NesnelerListe.ShowDialog();
        }

    }
}